home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1999 #1
/
Amiga Plus 1999 #1.iso
/
System-Boost
/
Sound
/
Deli14BitGenie
/
Deli14BitGenie.doc
< prev
next >
Wrap
Text File
|
1998-06-21
|
11KB
|
254 lines
14bit NotePlayer Genie V2.66 (16-Jun-98)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Introduction
~~~~~~~~~~~~
This is the well known 14bit NotePlayer that comes with the DeliTracker
distribution. After Peter Kunath gave me the sourcecode, I was able to add
various features. Please notice that you need at least an MC68020 to use
them as the MC68000 routines have been left untouched! So there's NO reason
for MC68000 owners to download this new genie.
Plenty of cpu power is appreciated (although the Genie will not be slower
when not using the new features). You will need an MC68060 to be able to
mix at frequencies higher than 50KHz with Panning and Interpolation and 32
voices 8-D
Small list of new features/improvements:
- Now uses a faster longword chipmem transfer.
- Added Panning support (e.g. for FastTracker modules).
- Added stereo width slider (so this incorporates the HeadPhones Genie).
- Added Interpolation mode for high quality mixing.
- Added DSP Routines: Echo (Reverb), Hall (Reverb with feedback) and
Reverser (each one is available in Mono, Cross or Center mode).
- Added ModSave function (16 Bit AIFF or RAW file).
- The ModSave routine has a Normalize option which will do a peak search.
- The ModSaver also will cut off NULL-samples at the beginning and at the
end of a saved soundfile.
- Actual (DMA) mixing frequency is now displayed aswell.
- Now uses a 256 samples buffer instead of 200, which speeds things up a
little and doesn't cost too much precision.
- Settings can be saved individually for each module.
Installation
~~~~~~~~~~~~
Just place the main file into your DeliTracker/Genies folder (by replacing
the old 14bit NotePlayer).
Configuration
~~~~~~~~~~~~~
Please note that the configuration file of versions below V2.65 had to be
extended and is not compatible anymore.
Starting with V2.66, all settings can be saved for each module
individually. When selecting the "Save Prefs for Mod" item in the
"Settings" menu, a new prefs file is saved in a subdirectory of your
DeliConfig drawer called "ModPrefs". The next time you play a module which
has an associated prefs file for the 14bit Genie, these settings are used
instead of the default ones. The last settings will be restored when you
eject the module again.
To reload the last saved settings for modules with no extra prefs, use the
"Reload Global Prefs" menu item.
Panning
~~~~~~~
Panning is AFAIK currently only supported by FastTracker and OctaMed
Soundstudio Modules, but you can enable it at any time to reduce stereo
width (e.g when listening with headphones or recording a module to tape).
The panning routine is rather fast and will not use much additional cpu
power unless you use it together with interpolation which nearly double the
time used for mixing.
The stereo width slider can only be dragged with panning enabled. A setting
of 0% yields to perfect mono sound whereas 200% tries to increase the
seperation. Settings between 100% and 200% do not make any difference on
Players without panning support.
Interpolation
~~~~~~~~~~~~~
Turning the interpolation on will generally yield smoother sound. How this
work? Normally, the sample frequencies in most modules are much lower than
the output frequency. So the routine takes the instruments and calculates
the values inbetween two samples creating smaller steps. Unfortunately,
this normally makes some instruments sound a bit damp on the other hand.
Please note that this routine does ONLY do interpolation and (currently) NO
SMOOTHING. So a sample with higher sample rate than the mixing frequency is
not interpolated in any way.
Also note that with interpolation enabled you can lower the mixing
frequency a lot and normally still get pretty good quality sound (for
Protracker Modules 28KHz is normally sufficient). There's also a little
'anti-knack' effect, but it isn't worth mentioning.
Interpolation takes some cpu power (each sample word needs one MULS
instruction!) to perform. This gets worse when panning is enabled too, for
then both the left and right part of the sample need to be interpolated.
DSP Routines
~~~~~~~~~~~~
The DSP is something I always wished to have in the 14bit Genie. The
effects performed by these routines give most modules a whole new dimension
and depth of sound.
The DSP effects can be applied to the same channel (Echo, Hall, Reverser)
or alternating between the channels (Cross-Echo, Cross-Hall, X-Reverser) or
in the middle (Center-Echo, Center-Hall, Y-Reverser).
Echo-DSP: Adds a single echo to the audio stream after the given delay.
Hall-DSP: Adds a echo to the audio stream which will be reused for the next
echo (feedback).
Reverser: The original source is written to the audio stream after the
specified delay. Several echos with increasing volume are added
before the delay point (this creates an effect as if the sound is
played reverse, but in fact it isn't).
There are two parameters to play with. The first one is the Delay. How much
time passes until you will hear the feedback depends on the slider setting
aswell as the DSP buffer size and the mixing frequency. The second
parameter is the volume. This controls the loudness of the DSP feedback.
Just play around with it a little bit. Please notice that you should lower
the main volume when using DSP volumes of 100% or 50% by the same amount.
Otherwise you probably will get some distortions.
Luckily, the DSP Routines are quite simple and normally don't need much cpu
time to perform (I'd say it's roughly the power of 1-2 additional channels.
The Reverser however, needs a bit more time than the Echo or Hall effects
(but I haven't measured how much it is in fact).
I'm willing to add more effects on request (Phaser, Flanging, etc.).
ModSave Option
~~~~~~~~~~~~~~
For the ModSave Genie which comes with the DeliTracker distribution only
supports 8 bit samples I've added this feature to the 14bit NotePlayer.
You can either save the music as standard AIFF 16bit stereo sample or as
raw pulse coded binary file (the left/right channel words are saved
interleaved). You can select either kind in the Settings menu.
To save a module as a sample you need to enter a valid filename in the
string gadget and then tag the save checkbox (before loading the module).
If you press return (or tab) in the empty filename string gadget, a
filerequester will pop up asking for the name of the file to save. This
will also happen if you tag the save checkbox and no name is given in
string gadget.
The realtime saving needs a fast harddrive (preferably SCSI for AT-IDE
needs cpu power to poll the data) and a fast machine. If you get
Overflow-Errors, try to lower the sample rate or use a faster drive (or
contact me for a special 'even-more-save-buffers' version). The ModSave
subtask runs at priority +1 to avoid being locked out for a too long
period.
The routines are auto-sensing for the beginning and the end of the sample
(so there will be neither NULL-bytes in front or at the end).
The saving will be automatically stopped when any error occurs (there might
not be any error message though (i.e. no memory for buffers)).
Please note that the Boost-Slider will have no effect on the overall volume
of the written sample!
There is an option to automatically Normalize the resulting sample. For
this step, the maximum peak of the sample is scanned for during the mixing
process (so this needs some more cpu power if you enable it) and will then
adjust the volume of the sample AFTER the saving has been stopped (so don't
worry if your drive gets busy after the module has finished). You'll get a
busy pointer until the process is finished.
After any successful (!) saving process the Save checkbox gets untagged
automatically to avoid overwriting the just saved samples by a new one.
A short note: The AIFF file will use the frequency value you've entered in
the Mixing Freq. box. If this value differs from the actual DMA output
rate, the pitch of sample might be a bit offset on other computers. On the
other hand, this allows you to create e.g. '44100 Hz' samples (which are in
fact mixed at 44336 Hz) to burn them onto CD (as some programs don't accept
other rates).
Note that enabling the ModSave feature will increase the amount of (fast)
memory used currently by 128KB.
Some "DO NOT"s
~~~~~~~~~~~~~~
- Don't change the mixing frequency with the DSP turned on. This will not
do any harm, but cause strange sounds for the buffer is not cleared.
- Changing the buffer size while playing will clear the old buffer. Just be
aware of it.
- Don't fiddle with the mixing frequency while using the ModSave function.
This just causes the sample to sound wrong.
- Please don't toggle the Panning setting while using the ModSave function.
This *could* cause some 'leaks' in the resulting file (this has not been
tested though).
- Please don't change the type of file to write while saving. This probably
just will cut off the beginning of the sample or will give you a useless
AIFF header.
- Turning the Normalize function after saving has started may lead to
distorted samples if the maximum peak already has been passed.
Final Notes
~~~~~~~~~~~
Special thanks must go to Richard 'Zeg' Wagenführer and Christian
'Flowerpower' Buchner for beta testing and support and to Peter 'Deli'
Kunath for his sources and help on various issues.
Thanks must also go to all those people who already sent me there comments
and bug reports.
The Genie has been tested with Enforcer and MungWall, but if you encounter
any bugs or flaws, please report them. I also appreciate any comments on
the new features or suggestions for futher versions.
This software is Postcard-Ware and freely distributable, as long as this
archive remains complete and unaltered. So if you like it, I would
appreciate if you'd send me a nice postcard of your location :)
Alternatively, you might just smash the next PC you come along.
History
~~~~~~~
V2.65 (06-Jun-98):
- First public (AmiNet) release of the new version.
V2.66 (16-Jun-98):
- Doubled the ModSave Buffers (now 128KB) for slower machines to avoid
overflows. This flaw has been reported by Ralph Bernecker.
- Detected a bug which would not flush the last ModSave Buffer if a PCM
RAW file should have been written. Fixed.
- Added feature to cut off trailing NULL-samples when doing a ModSave.
- Added busy pointer during truncating or normalizing process.
- Now you'll get a file request when pressing return in an empty Filename
string gadget.
- All settings can now be saved individually for each module.
- Interpolation routine now uses 15bit accuracy instead of 8bit for
subsample factor calculation (just a little bit slower).
Contact address
~~~~~~~~~~~~~~~
Any mail, comments or donations welcome:
Chris Hodges Account: 359 68 63
Kennedystr. 8 BLZ : 700 530 70
D-82178 Puchheim Bank : Sparkasse Fürstenfeldbruck
Germany
Tel.: +49-89/8005856 WWW: http://platon.home.pages.de/
Email: platon@cu-muc.de IRC: platon42 on EfNet